עזרה:קוד מקור

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
עריכת ערכים

מדריכי עריכה

שילוב מרכיבים בדף:

אחרים:

דף זה מסביר כיצד ניתן לעצב ולהציג קוד מקור של תוכנה.

תג syntaxhighlight (או source)[עריכת קוד מקור | עריכה]

השימוש בתגי syntaxhighlight נוח במיוחד בעת הצגת קוד מקור בשפות מחשב שונות. להלן אופן השימוש:

<syntaxhighlight lang="text">

טקסט

</syntaxhighlight>

כאשר את המילה "טקסט" ניתן להחליף בזיהוי השפה. לדוגמה:

קוד ויקי תוצאה
<syntaxhighlight lang="csharp">
// Hello World program in Microsoft C#

using System;
class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}
</syntaxhighlight>
// Hello World program in Microsoft C#

using System;
class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}
רשימת השפות הנתמכות
6502acme, 6502kickass, 6502tasm, 68000devpac, abap, abl, abnf, aconf, actionscript, actionscript3, ada, ada2005, ada95, adl, agda, ahk, alloy, ambienttalk, ambienttalk/2, antlr, antlr-actionscript, antlr-as, antlr-c#, antlr-cpp, antlr-csharp, antlr-java, antlr-objc, antlr-perl, antlr-python, antlr-rb, antlr-ruby, apache, apacheconf, apl, applescript, arduino, arexx, arm, as, as3, asm, asp, aspectj, aspx-cs, aspx-vb, asy, asymptote, at, autohotkey, autoit, awk, b3d, bascomavr, basemake, bash, basic, basic4gl, bat, batch, bbcode, bc, befunge, bf, bibtex, blitzbasic, blitzmax, bmax, bnf, bnf, boo, boogie, bplus, brainfuck, bro, bsdmake, bugs, c, c#, c_loadrunner, c_mac, c_winapi, c++, c++-objdumb, ca65, cadl, cadlisp, camkes, cbmbas, ceylon, cf3, cfc, cfengine3, cfg, cfm, cfs, chai, chaiscript, chapel, cheetah, chpl, cirru, cl, clay, clipper, clj, cljs, clojure, clojurescript, cmake, c-objdump, cobol, cobolfree, coffee, coffeescript, coffee-script, common-lisp, componentpascal, console, control, coq, cp, cpp, cpp-objdump, cpp-qt, cpp-winapi, cpsa, crmsh, croc, cry, cryptol, csh, csharp, csound, csound-csd, csound-document, csound-orc, csound-sco, csound-score, css, css+django, css+erb, css+genshi, css+genshitext, css+jinja, css+lasso, css+mako, css+mako, css+mozpreproc, css+myghty, css+php, css+ruby, css+smarty, cu, cucumber, cuda, cxx-objdump, cypher, cython, d, dart, dcl, dcpu16, debcontrol, debsources, delphi, dg, diff, django, d-objdump, docker, dockerfile, dos, dosbatch, doscon, dosini, dpatch, dtd, duby, duel, dylan, dylan-console, dylan-lid, dylan-repl, earl-grey, earlgrey, easytrieve, ebnf, ec, ecl, ecmascript, eg, eiffel, elisp, elixir, elm, emacs, emacs-lisp, erb, erl, erlang, evoque, ex, exs, ezhil, factor, fan, fancy, felix, fish, fishshell, flx, fortran, fortranfixed, foxpro, freebasic, fsharp, fy, gambas, gap, gas, gawk, genshi, genshitext, gettext, gherkin, glsl, gnuplot, go, golo, gooddata-cl, gosu, groff, groovy, gst, gwbasic, haml, handlebars, haskell, haxe, haxeml, hexdump, hs, html, html+cheetah, html+django, html+erb, html+evoque, html+genshi, html+handlebars, html+jinja, html+kid, html+lasso, html+mako, html+mako, html+myghty, html+php, html+ruby, html+smarty, html+spitfire, html+twig, html+velocity, html4strict, html5, htmlcheetah, htmldjango, http, hx, hxml, hxsl, hy, hybris, hylang, i6, i6t, i7, idl, idl4, idr, idris, iex, igor, igorpro, ik, inform6, inform7, ini, io, ioke, ipython, ipython2, ipython3, ipythonconsole, irb, irc, isabelle, j, j, jade, jags, jasmin, jasminxt, java, java5, javascript, javascript+cheetah, javascript+django, javascript+erb, javascript+genshi, javascript+genshitext, javascript+jinja, javascript+lasso, javascript+mako, javascript+mako, javascript+mozpreproc, javascript+myghty, javascript+php, javascript+ruby, javascript+smarty, javascript+spitfire, jbst, jcl, jinja, jl, jlcon, jproperties, jquery, js, js+cheetah, js+django, js+erb, js+genshi, js+genshitext, js+jinja, js+lasso, js+mako, js+mako, js+myghty, js+php, js+ruby, js+smarty, js+spitfire, json, jsonld, json-ld, jsonml+bst, jsp, julia, kal, kconfig, kernel-config, kid, koka, kotlin, ksh, lagda, lasso, lassoscript, latex, lcry, lcryptol, lean, less, lhaskell, lhs, lid, lidr, lidris, lighttpd, lighty, limbo, linux-config, liquid, lisp, literate-agda, literate-cryptol, literate-haskell, literate-idris, livescript, live-script, llvm, locobasic, logos, logtalk, lsl, lua, m2, m68k, make, makefile, mako, mako, man, mapbasic, maql, mask, mason, mathematica, matlab, matlabsession, mawk, menuconfig, mf, minid, mma, mmix, modelica, modula2, modula3, moin, monkey, moo, moocode, moon, moonscript, mozhashpreproc, mozpercentpreproc, mpasm, mq4, mq5, mql, mql4, mql5, msc, mscgen, mupad, mxml, myghty, mysql, nasm, nawk, nb, nemerle, nesc, netrexx, newlisp, newspeak, nginx, nim, nimrod, nit, nix, nixos, nroff, nsh, nsi, nsis, numpy, oberon2, objc, obj-c, objc++, obj-c++, objdump, objdump-nasm, objectivec, objective-c, objectivec++, objective-c++, objectivej, objective-j, objectpascal, objj, obj-j, ocaml, ocaml-brief, octave, odin, oobas, ooc, oorexx, opa, openbugs, openedge, oracle11, oracle8, pacmanconf, pan, parasail, pas, pascal, pawn, pcmk, perl, perl6, php, php3, php4, php5, php-brief, pic16, pig, pike, pkgconfig, pl, pl6, plpgsql, plsql, po, posh, postgres, postgres-console, postgresql, postgresql-console, postscr, postscript, pot, pov, povray, powershell, praat, progress, prolog, properties, proto, protobuf, ps1, ps1con, psm1, psql, puppet, purebasic, py, py3, py3tb, pycon, pypy, pypylog, pyrex, pys60, pytb, python, python3, pyx, qbasic, qbs, qml, qvt, qvto, r, racket, ragel, ragel-c, ragel-cpp, ragel-d, ragel-em, ragel-java, ragel-objc, ragel-rb, ragel-ruby, rails, raw, rb, rbcon, rconsole, rd, rebol, red, red/system, redcode, reg, registry, resource, resourcebundle, rest, restructuredtext, rexx, rhtml, rkt, roboconf-graph, roboconf-instances, robotframework, rout, rpmspec, rql, rsl, rsplus, rst, rts, ruby, rust, s, sage, salt, sass, sc, scala, scaml, scheme, scilab, scm, scss, sdlbasic, sh, shell, shell-session, shen, slim, sls, smali, smalltalk, smarty, sml, snobol, sources.list, sourceslist, sp, sparql, spec, spitfire, splus, sql, sqlite3, squeak, squid, squid.conf, squidconf, ssp, st, stan, standardml, supercollider, sv, swift, swig, systemverilog, tads3, tap, tcl, tcsh, tcshcon, tea, termcap, terminfo, terraform, tex, text, tf, thinbasic, thrift, todotxt, trac-wiki, trafficscript, treetop, ts, tsql, turtle, twig, typescript, udiff, upc, urbi, urbiscript, v, vala, vapi, vb, vb.net, vbnet, vctreestatus, velocity, verilog, vfp, vgl, vhdl, vim, visualfoxpro, visualprolog, winbatch, winbugs, x10, xbase, xbasic, xml, xml+cheetah, xml+django, xml+erb, xml+evoque, xml+genshi, xml+jinja, xml+kid, xml+lasso, xml+mako, xml+mako, xml+myghty, xml+php, xml+ruby, xml+smarty, xml+spitfire, xml+velocity, xpp, xq, xql, xqm, xquery, xqy, xslt, xten, xtend, xul+mozpreproc, yaml, yaml+jinja, z80, zephir, zxbasic

הערות[עריכת קוד מקור | עריכה]

  • במידה ונעשה שימוש בשפה לא קיימת או פרמטר lang חסר, הדף ישויך אוטומטית לקטגוריה:דפים עם שגיאות בצביעת קוד.
  • התג <syntaxhighlight> נכנס לשימוש לאחרונה. עד כה היה שימוש זהה בתג <source>, אך הוא עובר מן העולם מכיוון שניתן להתבלבל בקלות בין </source> של צביעת קוד, לתג זהה בתוך הקוד, למשל בשפת html.
  • ניתן להוסיף צביעה באמצעות כפתור עיצוב קוד.
  • שפת הוויקי לא נתמכת. אם הטקסט כולל תגים (למשל, <div>), ניתן להשתמש בשפת html, אחרת מומלץ להשתמש בשפת text.

עיצוב תגי syntaxhighlight[עריכת קוד מקור | עריכה]

בנוסף לפרמטר lang שבו נעשה שימוש לעיל, לתגי syntaxhighlight מספר פרמטרים נוספים:

  • פרמטר line: הוספת הפרמטר (בלי ערך) מוסיפה מספרי שורות לכל שורה. למשל,
קוד ויקי תוצאה
<syntaxhighlight lang="csharp" line>
class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}
</syntaxhighlight>
1 class HelloWorld
2 {
3     public static int Main(String[] args)
4     {
5         Console.WriteLine("Hello, World!");
6         return 0;
7     }
8 }
  • פרמטר start: בעת השימוש בפרמטר line לעיל, ניתן להשתמש גם בפרמטר start לציון מספר השורה הראשונה. למשל, ניתן להתחיל את המספור בספרה 6, והשורות הבאות יהיו 7, 8 וכולי.
  • פרמטר highlight: הדגשת שורה אחת מתוך כלל הקוד. למשל, העברת הספרה "4" בפרמטר זה תוסיף הדגשה כתומה לשורה הרביעית (בלי קשר למספר שנקבע בפרמטר start).
קוד ויקי תוצאה
<syntaxhighlight lang="csharp" line start=33 highlight="1,4,8">
class HelloWorld
{
    public static int Main(String[] args)
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}
</syntaxhighlight>
33 class HelloWorld
34 {
35     public static int Main(String[] args)
36     {
37         Console.WriteLine("Hello, World!");
38         return 0;
39     }
40 }

  • פרמטר inline מאפשר שילוב הקוד בתוך הטקסט. למשל, הקוד <syntaxhighlight lang=java inline>return a.b[35] + 114</syntaxhighlight> ישלב את הטקסט return a.b[35] + 114 בתוך השורה. במקרה כזה פרמטר line לא יעבוד, ופרמטר highlight ימנע את ההכנסה התקינה לתוך השורה. כדאי לשקול שימוש בפרמטר |class=nowrap, למשל <syntaxhighlight lang=java inline class=nowrap>return a.b[35] + 114</syntaxhighlight>. זה ימנע את שבירת הקוד לשתי שורות במידה ואין מספיק מקום, ויתחיל במקרה כזה הישר בשורה החדשה.
  • ניתן להוסיף פרמטרים רגילים של שפת html, למשל style או class (ראו דוגמה בסעיף הקודם).

תגי code[עריכת קוד מקור | עריכה]

כאשר עולה הצורך להציג קוד מקור בגוף הטקסט (ולא בשורה חדשה), רצוי להבליט את הקוד ולהבדילו מהטקסט עצמו. ניתן לעשות זאת באמצעות תגי code. להלן אופן השימוש:

<code>טקסט</code>

השורה הנ"ל עצמה מוקפת בתגי קוד וניתן להבחין בשינוי הגופן וברקע האפרפר.

ניתן לשלב תגי code עם תגי nowiki כאשר עולה הצורך להציג קוד ויקי. למשל, הקוד

"ניתן להוסיף קישורים לערכים באופן הבא: <code><nowiki>[[קישור]]</nowiki></code>".

יביא לתוצאה הבאה:

"ניתן להוסיף קישורים לערכים באופן הבא: [[קישור]]".

שימו לב שתגי nowiki הם הפנימיים, ומחוצה להם יש תגי code.

קישורים חיצוניים[עריכת קוד מקור | עריכה]