.\" Man page generated from reStructuredText .\" by the Docutils 0.22.4 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "LY-SERVER" "1" "Apr 04, 2026" "0.9.10" "python-ly" .SH "نام (NAME)" ly-server \- دستکاری فایل‌های منبع LilyPond از طریق HTTP .sp نحوه استفاده: .INDENT 0.0 .INDENT 3.5 .sp .EX ly\-server [options] .EE .UNINDENT .UNINDENT .sp یک سرور HTTP برای دستکاری کدهای ورودی LilyPond .SH "گزینه‌های سرور (SERVER OPTIONS)" .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \-v\fP,\fB \-\-version نمایش شماره نسخه و خروج .TP .B \-h\fP,\fB \-\-help نمایش این متن راهنما و خروج .TP .BI \-p\fP,\fB \-\-port \ PORT درگاهی که سرور به آن گوش می‌دهد (پیش‌فرض 5432) .TP .BI \-t\fP,\fB \-\-timeout \ TIME در صورت تنظیم، سرور پس از \-t ثانیه عدم فعالیت به طور خودکار خاموش می‌شود هنوز پیاده‌سازی نشده است! .UNINDENT .UNINDENT .UNINDENT .SH "گزینه‌های دستور (COMMAND OPTIONS)" .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .BI \-e\fP,\fB \-\-encoding \ ENC کدگذاری (ورودی) (پیش‌فرض UTF\-8) .TP .BI \-\-output\-encoding \ ENC کدگذاری خروجی (پیش‌فرض همان کدگذاری ورودی) .TP .BI \-l\fP,\fB \-\-language \ NAME زبان پیش‌فرض نام زیروبمی (پیش‌فرض \(dqnederlands\(dq) .TP .BI \-d \ تنظیم یک متغیر (در ادامه را ببینید) .UNINDENT .UNINDENT .UNINDENT .sp گزینه‌های دستور، مقادیر پیش‌فرض را برای اجرای دستورهایی تعیین می‌کنند که توسط درخواست‌های HTTP فراخوانی می‌شوند. این گزینه‌ها می‌توانند توسط هر درخواست HTTP مجزا بازنویسی شوند..SH "درخواست‌های HTTP (HTTP REQUESTS)" .SS درخواست‌های GET (GET Requests) .sp برخی درخواست‌های GET بعداً برای بازیابی مقادیر یا تغییر برخی تنظیمات کارساز بر اساس مسیر URL پیاده‌سازی خواهند شد. .SS درخواست‌های POST (POST Requests) .sp کارساز درخواست‌های POST را (در حال حاضر) بدون استفاده از مسیر URL می‌پذیرد. این کارساز به عنوان بدنهٔ درخواست، انتظار یک رشتهٔ JSON منفرد با عناصر زیر را دارد: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBcommands\fP (اجباری) آرایه‌ای شامل یک یا چند دستور که باید به صورت متوالی اجرا شوند. هر مدخل شامل موارد زیر است: .INDENT 7.0 .TP .B \fBcommand\fP (اجباری): نامی برای دستور. این مقدار باید یکی از موارد موجود در فهرست دستورهای دردسترس زیر باشد. .TP .B \fBargs\fP (اختیاری): اگر دستوری به آرگومان‌ها نیاز داشته باشد (مانند دستور \fBtranspose\fP)، آن‌ها به عنوان یک مقدار رشته‌ای منفرد ارائه می‌شوند. .TP .B \fBvariables\fP (اختیاری): یک دیکشنری از انتساب‌های متغیرها. کلیدها باید از فهرست زیر باشند، و درستی نوع مقادیر بررسی می‌شود. اگر یک یا چند متغیر داده شود، \fIپیش از\fP اجرای دستور مقداردهی خواهند شد. ممکن است متغیری پیش از اجرای دستور بعدی دوباره تغییر کند، اما به طور خودکار بازنشانی نمی‌شود. تعیین یک متغیر با مقدار \(aq\(aq، آن را از حالت تنظیم خارج (unset) می‌کند. .UNINDENT .TP .B \fBoptions\fP (اختیاری) یک دیکشنری از انتساب‌های گزینه‌ها. کلیدها باید از فهرست گزینه‌های دستور در بالا انتخاب شوند، به صورت نام بلند و بدون خط فاصله‌های آغازین، مانند \fB{ \(dqencoding\(dq: \(dqUTF\-16\(dq }\fP\&. اگر گزینه‌ای در اینجا داده شود، گزینهٔ پیش‌فرض داده‌شده در خط فرمان را لغو می‌کند، اما تنها برای دستور فعلی. .TP .B \fBdata\fP (اجباری) یک رشتهٔ منفرد حاوی سند ورودی LilyPond. .UNINDENT .UNINDENT .UNINDENT .sp کارساز تلاش خواهد کرد سلسله‌ای از دستورها را از روی درخواست بسازد، و در صورت وجود هرگونه اشکال در آن، یک پیام \(dqBad Request\(dq با کد وضعیت HTTP 400 ارسال می‌کند. .SS شیء پاسخ (Response Object) .sp اگر دستورها با موفقیت اجرا شوند، بدنهٔ پاسخ حاوی یک شیء JSON سریالی‌شده با عناصر زیر خواهد بود: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBinfo\fP آرایه‌ای از مدخل‌ها شامل نتایج دستورهای \(dqinfo\(dq (به زیر مراجعه کنید). هر مدخل دارای یک فیلد \fBcommand\fP و یک فیلد \fBinfo\fP است. .TP .B \fBdoc\fP شیئی با دو فیلد: .INDENT 7.0 .TP .B \fBcontent\fP رشته‌ای شامل محتوای سند با اعمال متوالی تمامی دستورهای \(dqedit\(dq. (اگر هیچ دستور ویرایشی مشخص نشده باشد، این بخش حاوی ورودی اصلی است). .TP .B \fBcommands\fP آرایه‌ای شامل نام‌های دستورهایی که اعمال شده‌اند. .UNINDENT .TP .B \fBexports\fP آرایه‌ای شامل مدخل‌هایی به ازای هر دستور \(dqexport\(dq اعمال‌شده. هر مدخل دارای فیلدهای زیر است: .INDENT 7.0 .TP .B \fBdoc\fP رشته‌ای شامل محتوای سند تبدیل‌شده/برون‌ریزی‌شده .TP .B \fBcommand\fP نام دستور اعمال‌شده .UNINDENT .UNINDENT .UNINDENT .UNINDENT.SS "دستورها (Commands)" .sp سه نوع دستور وجود دارد که نتایج آن‌ها به‌طور مستقل مدیریت می‌شود: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 دستورهای \(dqinfo\(dq فراداده‌ها را از سند ورودی بازیابی می‌کنند .IP \(bu 2 دستورهای \(dqedit\(dq سند را تغییر می‌دهند؛ دستورهای ویرایش بعدی تغییرات را به‌صورت زنجیره‌ای اعمال می‌کنند .IP \(bu 2 دستورهای \(dqexport\(dq که ورودی را به قالبی دیگر تبدیل می‌کنند. دستورهای بعدی تحت تأثیر نتیجهٔ دستورهای export قرار نمی‌گیرند. .UNINDENT .UNINDENT .UNINDENT .sp دستورهای اطلاعاتی که اطلاعات را بازمی‌گردانند و فایل را تغییر نمی‌دهند: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBmode\fP چاپ حالت سند (در صورت مشخص نشدن، حدس زده می‌شود) .TP .B \fBversion\fP چاپ نسخهٔ LilyPond، در صورتی که در سند تعیین شده باشد .TP .B \fBlanguage\fP چاپ زبان نام‌های زیروبمی، در صورتی که در سند تعیین شده باشد .UNINDENT .UNINDENT .UNINDENT .sp دستورهایی که ورودی را تغییر می‌دهند: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBindent\fP دندانه‌گذاری مجدد فایل .TP .B \fBreformat\fP قالب‌بندی مجدد فایل .TP .B \fBtranslate \fP ترجمهٔ نام‌های زیروبمی به زبان مشخص‌شده .TP .B \fBtranspose \fP تغییر گام (ترانسپوز) فایل همان‌گونه که LilyPond انجام می‌دهد؛ زیروبمی‌ها به زبان \(aqnederlands\(aq مشخص می‌شوند .TP .B \fBabs2rel\fP تبدیل موسیقی مطلق به نسبی .TP .B \fBrel2abs\fP تبدیل موسیقی نسبی به مطلق .UNINDENT .UNINDENT .UNINDENT .sp دستورهایی که ورودی را به قالبی دیگر تبدیل می‌کنند: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBmusicxml\fP تبدیل به MusicXML (در حال توسعه، هنوز کامل نیست) .TP .B \fBhighlight\fP خروجی گرفتن از سند به صورت HTML رنگ‌آمیزی‌شده با برجسته‌سازی نحو .UNINDENT .UNINDENT .UNINDENT .SS "متغیرها (Variables)" .sp متغیرهای زیر را می‌توان برای تأثیرگذاری بر رفتار دستورها تنظیم کرد. در صورت وجود مقدار پیش‌فرض، درون قلاب نوشته شده است: .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .TP .B \fBmode\fP حالت ورودی برای خواندن (پیش‌فرض خودکار)؛ می‌تواند یکی از این موارد باشد: lilypond, scheme, latex, html, docbook, texinfo. .TP .B \fBencoding\fP [UTF\-8] کدگذاری برای خواندن (همچنین با آرگومان \-e تنظیم می‌شود) .TP .B \fBdefault\-language\fP [nederlands] زبان نام‌های زیروبمی برای استفاده به‌صورت پیش‌فرض، هنگامی که در سند به گونهٔ دیگری مشخص نشده باشد .TP .B \fBoutput\-encoding\fP کدگذاری برای نوشتن (پیش‌فرض آن \fBencoding\fP است؛ همچنین با آرگومان \fB\-\-output\-encoding\fP تنظیم می‌شود) .TP .B \fBindent\-tabs\fP [\fBfalse\fP] استفاده از تب برای دندانه‌گذاری یا خیر .TP .B \fBindent\-width\fP [2] تعداد فاصله‌ها برای هر سطح دندانه‌گذاری (در صورت عدم استفاده از تب) .TP .B \fBfull\-html\fP [\fBTrue\fP] در صورت تنظیم روی True، یک سند کامل به صورت HTML با برجسته‌سازی نحو صادر می‌شود، در غیر این صورت تنها محتوای خالص قرارگرفته در عنصری که توسط متغیرهای \fBwrapper\-\fP پیکربندی شده است صادر خواهد شد. .TP .B \fBstylesheet\fP نام فایل برای ارجاع به‌عنوان شیوه‌نامهٔ خارجی جهت HTML با برجسته‌سازی نحو. این نام فایل عیناً در برچسب \fB\fP استفاده می‌شود. .TP .B \fBinline\-style\fP [\fBfalse\fP] استفاده از صفت‌های سبک درون‌خطی برای HTML با برجسته‌سازی نحو یا خیر. به‌طور پیش‌فرض یک شیوه‌نامهٔ css تعبیه می‌شود. .TP .B \fBnumber\-lines\fP [\fBfalse\fP] افزودن شماره خطوط هنگام ایجاد HTML با برجسته‌سازی نحو یا خیر. .TP .B \fBwrapper\-tag\fP [\fBpre\fP] برچسبی که HTML با نحو برجسته‌شده در آن قرار می‌گیرد. مقادیر ممکن: \fBdiv\fP، \fBpre\fP، \fBid\fP و \fBcode\fP .TP .B \fBwrapper\-attribute\fP [\fBclass\fP] صفت مورد استفاده برای برچسب دربرگیرنده. مقادیر ممکن: \fBid\fP و \fBclass\fP\&. .TP .B \fBdocument\-id\fP [\fBlilypond\fP] نام اعمال‌شده به wrapper\-attribute. اگر سه گزینهٔ آخر از تنظیمات پیش‌فرض خود استفاده کنند، عناصر HTML برجسته‌شده درون عنصر \fB
\fP قرار می‌گیرند.
.TP
.B \fBlinenumbers\-id\fP [\fBlinenumbers\fP]
در صورت صادر شدن شماره خطوط، این نام برای عناصر \fB\fP استفاده می‌شود
.UNINDENT
.UNINDENT
.UNINDENT.SH "مثال‌ها (EXAMPLES)"
.sp
در اینجا اجرای پایه آمده است که روی پورت 5432 شنود می‌کند:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
ly\-server
.EE
.UNINDENT
.UNINDENT
.sp
مشخص کردن پورت و مهلت زمانی (timeout):
.INDENT 0.0
.INDENT 3.5
.sp
.EX
ly\-server \-p 4000 \-t 5000
.EE
.UNINDENT
.UNINDENT
.SS "درخواست‌های نمونه (Sample Requests)"
.sp
ساده‌ترین درخواست، فقط با اعمال یک دستور ویرایش. در این حالت نتیجه در \fBresult[\(aqdoc\(aq][\(aqcontent\(aq]\fP خواهد بود:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
{
    \(aqcommands\(aq: [
        {
            \(aqcommand\(aq: \(aqindent\(aq
        }
    ],
    \(aqdata\(aq : \(dq\erelative c\(aq { c ( d e f ) }\(dq
}
.EE
.UNINDENT
.UNINDENT
.sp
درخواست ساده‌ای دیگر، این بار با اعمال یک دستور \(dqinfo\(dq. نتیجه در \fBresult[\(aqinfo\(aq]\fP خواهد بود که حاوی \fBlilypond\fP در فیلد \fBinfo\fP و \fBmode\fP در فیلد \fBcommand\fP است:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
{
    \(aqcommands\(aq: [
        {
            \(aqcommand\(aq: \(aqmode\(aq
        }
    ],
    \(aqdata\(aq : \(dq\erelative c\(aq { c ( d e f ) }\(dq
}
.EE
.UNINDENT
.UNINDENT
.sp
و مثالی پیچیده‌تر. این نمونه ابتدا سند را ترانسپوز کرده و سپس نسخهٔ ترانسپوزشده را به‌طور مستقل به HTML برجسته‌سازی‌شده (highlighted) و MusicXML تبدیل می‌کند. علاوه بر این، حالت (mode) را نیز بازیابی خواهد کرد. این بار نتیجه در هر سه مکان خواهد بود: سند ترانسپوزشده در \fBdoc.content\fP، حالت در \fBinfo.info\fP، و HTML و MusicXML در \fBexports[0].doc\fP و \fBexports[1].doc\fP\&.:
.INDENT 0.0
.INDENT 3.5
.sp
.EX
{
    \(aqcommands\(aq: [
        {
            \(aqcommand\(aq: \(aqtranspose\(aq,
            \(aqargs\(aq: \(aqc d\(aq
        },
        {
            \(aqcommand\(aq: \(aqhighlight\(aq,
            \(aqvariables\(aq: { \(aqfull\-html\(aq: \(aqfalse\(aq }
        },
        { \(aqcommand\(aq: \(aqmusicxml\(aq },
        { \(aqcommand\(aq: \(aqmode\(aq },
    ],
    \(aqoptions\(aq: {
        \(aqlanguage\(aq: \(dqdeutsch\(dq
    },
    \(aqdata\(aq: \(dq\erelative c\(aq { c4 ( d e ) }\(dq
}
.EE
.UNINDENT
.UNINDENT.SH "نویسنده (AUTHOR)"
Wilbert Berendsen
.SH "کپی‌رایت و تکثیر (COPYRIGHT)"
2025, Wilbert Berendsen
.\" End of generated man page.